🦊latent diffuison modelsとVAE
🏡/🦊雑に学ぶComfyUI
前
次/🦊CFG
ここまでの技術はピクセル画像、つまり我々の目に見える画像で行ってきましたが、計算量が多すぎてご家庭のパソコンでは動かせないという問題がありました
そこで、一度低次元に圧縮し、そこでサンプリングを行ってノイズを除去した後、ピクセル画像に戻すことで計算量を削減しようとしたのがlatent diffusion modelsです
この低次元というのが潜在空間(latent space)であり、ピクセル画像を潜在空間に変換したり、逆にピクセル画像に戻したりするのがVAEです
ComfyUIで見てみる
分かりやすさのためにimage2imageのworkflowを見てみましょう
https://comfyanonymous.github.io/ComfyUI_examples/img2img/ComfyUI_examples/img2img
https://gyazo.com/22d5f654c3c598feb046cf71d4d8d4aa
ベースとなる画像がVAEEncodeノードで潜在空間へ変換されます
その状態でKsamplerがサンプリングを行います
最後にVAEDecodeノードでピクセル画像へ戻すことで綺麗な画像が得られます
2024末辺りから増えてきている動画モデルを使う場合は🦊VAEDecodeTiledを使うことを強めに推奨。通常のVAEDecodeノードではVRAM24GBでもメモリ不足でアプリが落ちる危険があります…(つまり長時間かけて生成した動画が消える)
実践的な話
どのVAEを使えばいいか
RAWをJPEGに変換すると画像が劣化するのと同じように、というかそれ以上にピクセル画像を潜在空間へエンコード/デコードすると画像が劣化します
そして、VAEによってその処理の上手い下手にかなり大きな差があります
有名なものではAnything V3.0をデフォルトのVAEでデコードすると下のように鮮明度が低いボヤっとした画像がでてきます
https://gyazo.com/5b799e6a88f788ebe04c3ed2abc7fb3c
これに対処するために古今東西様々なVAEが開発されたのですが、以下のVAEを使えば間違いないのでそれ以外忘れてください
Stable Diffusion 1.5ベース
vae-ft-mse-840000-ema-pruned
ダウンロード
https://huggingface.co/stabilityai/sd-vae-ft-mse-original/blob/main/vae-ft-mse-840000-ema-pruned.safetensorsvae-ft-mse-840000-ema-pruned.safetensors
ComfyUI_windows_portable\ComfyUI\models\vaeに置く
SDXLベース
モデル内臓のもの、もしくはSDXL VAE
1.0が出た当時にvaeが壊れていた、等ちょっとした問題になった騒動がありましたが今となってはほぼ歴史の授業の話でしょう。
その他のモデル
Flux.1など新しいモデルは基本的に専用のVAEを用意しているのでそれをmodels/vaeフォルダ以下に置く
どれがどのモデルのvaeかわからなくなりそうならvaeフォルダの下にサブフォルダを作れるのでそれで仕分けすると良い
潜在空間での画像編集